package model

import (
	"smart-health-platforms/config"
	"time"
)

type AfterSale struct {
	Id           uint      `gorm:"column:id;type:bigint UNSIGNED;comment:主键;primaryKey;not null;" json:"id"`                      // 主键
	OrderId      uint      `gorm:"column:order_id;type:bigint;comment:订单id;not null;" json:"order_id"`                            // 订单id
	UserId       uint      `gorm:"column:user_id;type:bigint;comment:用户id;not null;" json:"user_id"`                              // 用户id
	Type         uint      `gorm:"column:type;type:tinyint UNSIGNED;comment:售后类型：1仅退款 2退货退款 3换货;not null;default:1;" json:"type"` // 售后类型：1仅退款 2退货退款 3换货
	Reason       string    `gorm:"column:reason;type:varchar(255);comment:售后原因;not null;" json:"reason"`                          // 售后原因
	RefundAmount float64   `gorm:"column:refund_amount;type:decimal(10, 2);comment:退款金额;not null;" json:"refund_amount"`          // 退款金额
	Status       uint      `gorm:"column:status;type:tinyint;comment:状态：0待审核 1审核通过 2拒绝 3已退款 4已换货 5已取消;not null;" json:"status"`   // 状态：0待审核 1审核通过 2拒绝 3已退款 4已换货 5已取消
	Images       string    `gorm:"column:images;type:varchar(255);comment:售后凭证;not null;" json:"images"`                          // 售后凭证
	CreatedAt    time.Time `gorm:"column:created_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"created_at"`
	UpdatedAt    time.Time `gorm:"column:updated_at;type:datetime(3);not null;default:CURRENT_TIMESTAMP(3);" json:"updated_at"`
}

func (as *AfterSale) TableName() string { // 表名
	return "after_sale"
}
func (as *AfterSale) CreateSale() error { // 创建售后
	return config.DB.Create(&as).Error
}
func (as *AfterSale) GetSale(id int) error { // 售后详情
	return config.DB.Where("id = ?", id).Limit(1).Find(&as).Error
}
